import os
# 导入InsecureClient类，用于与HDFS进行通信
from hdfs.client import InsecureClient

# hdfs下载数据到本地
def download_data():
    """
    从HDFS下载数据到本地的功能函数。
    该函数首先尝试删除已存在的文件和目录，然后创建新目录，并从HDFS下载文件。
    """
    # 实例化InsecureClient，建立与HDFS的连接
    client = InsecureClient(url="http://192.168.134.211:50070", user="hainshklyzyxx")
    # 定义HTML文件的路径
    file_path = "/home/hainshklyzyxx/train1_4320/2014-01.html"
    # 定义TXT文件的路径
    file_txt_path = "/home/hainshklyzyxx/train1_4320/airquality.txt"
    # 检查HTML文件是否存在，如果存在则尝试删除
    if os.path.isfile(file_path):
        try:
            os.unlink(file_path)
        except Exception as e:
            print(f"文件 {file_path} 删除失败：{e}")
    # 检查TXT文件是否存在，如果存在则尝试删除
    if os.path.isfile(file_txt_path):
        try:
            os.unlink(file_txt_path)
        except Exception as e:
            print(f"文件 {file_txt_path} 删除失败：{e}")
    # 定义目录路径
    folder_path = "/home/hainshklyzyxx/train1_4320"
    # 检查目录是否存在，如果存在则删除
    if os.path.exists(folder_path):
        os.rmdir(folder_path)
        print("目录已删除!")
    # 创建新目录
    os.mkdir(folder_path)
    print("目录已创建!")
    # 从HDFS下载文件到本地目录
    client.download('/linkis/workspace/4320/2014-01.html', '/home/hainshklyzyxx/train1_4320')

# 定义查看目录中存在的方法：
def exists_html():
    """
    检查指定HTML文件是否存在的函数。
    """
    # 打印HTML文件是否存在
    print(os.path.exists('/home/hainshklyzyxx/train1_4320/2014-01.html'))

# 当作为主模块执行时，调用exists_html函数
if __name__ == '__main__':
    exists_html()
